// Package _9_数组中出现次数超过一半的数字 main
// @Title _9_数组中出现次数超过一半的数字
// @Description
// @Author  == 琳琳也叫王木木 ==  2022-01-13 10:05
// @Create  2022-01-13 10:05
package main

import (
	"fmt"
	"math"
)

func main() {
	fmt.Println(majorityElement([]int{1, 2, 3, 2, 2, 2, 5, 4, 2}))
}

//
//  majorityElement
//  @Description: 求数组中出现次数超过一半的数字
//  @param nums  输入的数组
//  @return int  出现超过一半的数字
//
func majorityElement(nums []int) int {
	if len(nums) == 0 {
		return math.MinInt64
	}
	var sumMap = make(map[int]int, len(nums))
	var ans int
	for i := 0; i < len(nums); i++ {
		if v, ok := sumMap[nums[i]]; ok {
			fmt.Println(v)
			sumMap[nums[i]] += 1
		} else {
			sumMap[nums[i]] = 1
		}
	}
	for k, v := range sumMap {
		if v > len(nums)/2 {
			return k
		}
	}
	return ans
}
